# 智慧电厂SIS系统 - 数据采集模块Makefile

# 编译器设置
CXX = g++
CXXFLAGS = -std=c++17 -Wall -Wextra -O2 -I./include -I./protocols
LDFLAGS = -L/usr/local/lib -L/opt/homebrew/lib -lmodbus -lpthread

# 目标可执行文件
TARGET = data_collector

# 源文件和对象文件
SRC_DIR = .
PROTOCOL_DIR = protocols
SRCS = $(wildcard $(SRC_DIR)/*.cpp) $(wildcard $(PROTOCOL_DIR)/*.cpp)
OBJS = $(SRCS:.cpp=.o)

# 默认目标
all: $(TARGET)

# 链接可执行文件
$(TARGET): $(OBJS)
	$(CXX) $(OBJS) -o $@ $(LDFLAGS)
	@echo "编译完成: $(TARGET)"

# 编译源文件为对象文件
%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清理编译产物
clean:
	rm -f $(OBJS) $(TARGET)
	@echo "已清理编译产物"

# 运行数据采集器
run:
	./$(TARGET)

# 伪目标声明
.PHONY: all clean run